package com.lvt.example.thinking.in.spring.questions.L21.aop.example01;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * desc：ElectricService
 *
 * @author LT
 * @date 2022/10/24
 */
@Service
public class ElectricService {
    // 修正方案一：this,。一种是被 @Autowired 注解的，于是我们的代码可以改成这样，即通过 @Autowired 的方式，
    // 在类的内部，自己引用自己：
    /**
     * AbstractAutoProxyCreator:createProxy
     */
    @Autowired
    ElectricService electricService;

    public void charge() throws InterruptedException {
        System.out.println("ElectricService charge ....");
        electricService.pay();
//        this.pay();
    }

    public void pay() throws InterruptedException {
        System.out.println("ElectricService pay ....");
        Thread.sleep(1000);
    }
}
